home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / advcpf.zip / DEMOFORT.FOR < prev    next >
Text File  |  1993-01-04  |  2KB  |  60 lines

  1. C FORTRAN DEMO (Calculates Distance between two points in 3D-ROOM.)
  2. $INCLUDE:'EX.F'
  3.       SUBROUTINE COORD
  4.       PARAMETER (CLIPPER='void pascal')
  5.       REAL*8 PARND
  6.       REAL A(3),B(3),DIST
  7.       INTEGER*2 IFHEL,DIM,LNG,ALNGTH,STRLEN     
  8.       INTEGER*2 WAHR,LOGIN
  9.       CHARACTER*7 LABEL(3)
  10.       LOGICAL*2 ISA,ISARRY
  11.       DATA LABEL/'X-COORD','Y-COORD','Z-COORD'/
  12. C PULL ARRAY's FROM CLIPPER      
  13.       DO 20 I=1,3
  14.       A(I)=PARND(1,I)
  15.       B(I)=PARND(2,I)
  16.       DIST=DIST+(A(I)-B(I))**2
  17. 20    CONTINUE
  18.       DIST=SQRT(DIST)
  19. C OUTPUT TO SCREEN, NOT VERY FANCY!
  20.       WRITE(*,*) '           Demo for a Clipper Fortran Conenction'
  21.       WRITE(*,*) '           (The screen I/O is done by Fortran)'
  22.       WRITE(*,*) '           Calculates the Distance between A - B'
  23.       WRITE(*,*) '                     JOBST HENSIEK'
  24.       WRITE(*,210)
  25. 210   FORMAT(/,14X,'Point A Point B')
  26.       WRITE(*,220) (LABEL(J),A(J),B(J),J=1,3)
  27. 220   FORMAT(2X,A7,2X,F7.2,2X,F7.2,/)
  28. C Checks for ARRAY
  29.       ISA=ISARRY(1)
  30. C
  31. C GIVES ARRAY LENGTH
  32.       DIM=ALNGTH(1)
  33. C
  34. C GET STRING-LENGTH
  35.       LNG=STRLEN(LABEL(1)//CHAR(0))
  36. C
  37. C TRANSFORM LOGICAL TO INTEGER IN ORDER TO PASS
  38.       WAHR=LOGIN(ISA)
  39.       WRITE(*,230) DIST,ISA,DIM,LNG
  40. 230   FORMAT(2X,'Distance A - B =',F9.2,//,
  41.      *2X,'Check for (1st Para), array: ',L2,/,2X,'Array-Dim: A[]  : ',I2,
  42.      */,2X,'String-Length   : ',I2)
  43. C      CLOSE(6)
  44. C
  45. C PUSH (DOUBLE)DIST back to CLIPPER
  46.       CALL STRND(DIST,3)
  47. C
  48. C
  49. C PUSH (LOGICAL(INTEGR))WAHR to CLIPPER
  50.       CALL STRL(1,4)
  51. C
  52. C
  53. C RETURN (INTEGER)IFEHL TO CLIPPER
  54. C  (PUT INTO X in Clipper.prg)
  55.       IFEHL=1
  56.       CALL RETNI(IFEHL)
  57.       END
  58.  
  59.